#coding=utf-8
__author__ = 'Meteor'
'''
封装业务的接口
'''
import requests,json,jsonpath
from request.reque import Resq
from common.yaml_read import yam

from common.extract import exrtact

class Api(Resq):
    '''
    该类继承Resq类，所以也继承了Resq的属性和方法
    '''
    def login(self):
        # 读取yam文件中对应接口的数据
        api = yam.info('login_api')

        # 发送请求
        self.post(url=api.get('url'),data=api.get('data'))

        # 判断是否需要从响应中提取数据
        self.extract_exprt(api)

        # 获取yaml文件中的'assert': {'status_code': 200, '$.message': '登录成功'}
        self.assert_exprt(api)




    def show_user(self):
        # 读取yam文件中show_user接口的数据
        api = yam.info('show_user')

        # 更新请求头中的token
        exrtact.is_update(api)
        # 发送请求
        self.get(url=api.get('url'),headers=api.get('headers'),params=api.get('pasrme'))

        # 接口的响应结果的断言
        self.assert_exprt(api)

    def logout(self):
        # 读取yam文件中logout接口数据
        api = yam.info('logout')

        # 更新请求头中的token
        exrtact.is_update(api)

        # 发送请求
        self.get(api.get('url'),headers=api.get('headers'))

        # 对请求结果断言
        self.assert_exprt(api)

    def add_user(self):
        api = yam.info('add_user')
        exrtact.is_update(api)
        self.post(url=api.get('url'),data=api.get('data'),headers=api.get('headers'))
        self.assert_exprt(api)

    def show_category(self):
        api = yam.info('show_category')
        exrtact.is_update(api)
        self.get(url=api.get('url'),params=api.get('pasrme'),headers=api.get('headers'))
        self.assert_exprt(api)



if __name__ == '__main__':
    api = Api()
    api.login()

    # 修改发送的参数，再次添加一个新的用户
    # api.data={'account': 'meteor122', 'name': 'meteor122', 'passWord': 123, 'createDate': '2021-11-20', 'status': 1, 'modelcodes': 1}
    api.assertin = {'$.message':'账号meteor128已经被注册了'}

    api.add_user()



